<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of persistenciaTelefono
 *
 * @author Agustin
 */
require_once 'telefono.php';
require_once 'conexion.php';

class PersistenciaTelefono {

    private static $instance = false;

    public static function getInstance() {
        if (!self::$instance instanceof self) {
            self::$instance = new self;
        }
        return self::$instance;
    }

    public function crearTelefono($numero) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "INSERT INTO telefonos (numero) VALUES('" . $numero . "')";
            $db->consulta($sentencia);
            return $db->obtenerUltimoID();
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function crearTelefonoFuncionario($datos) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "INSERT INTO funcionariostelefonos (idFuncionario,idTelefono) VALUES (" . $datos[0] . ", " . $datos[1] . ")";
            $db->consulta($sentencia);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function crearTelefonoLugar($datos) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "INSERT INTO lugarestelefonos (idLugar, idTelefono) VALUES ('" . $datos[1] . "'," . $datos[0] . ")";
            $db->consulta($sentencia);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function crearTelefonoCliente($datos) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "INSERT INTO clientestelefonos (idCliente, idTelefono) VALUES('" . $datos[1] . "'," . $datos[0] . ")";
            $db->consulta($sentencia);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traerTelefonos($numero) {
        try {
            $db = Conexion::getInstance();
            $telefonos = array();
            if ($numero == "") {
                $sentencia = "SELECT * FROM telefonos";
                $aux = $db->consulta($sentencia);
                foreach ($aux as $telefono) {
                    $tel = new Telefono(null);
                    $tel->id = $telefono[0];
                    $tel->numero = $telefono[1];
                    array_push($telefonos, $tel);
                }
                return $telefonos;
            } else {
                $sentencia2 = "SELECT * FROM telefonos WHERE idTelefono=" . $numero;
                $aux = $db->consulta($sentencia2);
                $tel = new Telefono(null);
                $tel->id = $aux[0][0];
                $tel->numero = $aux[0][1];
                return $tel;
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traerTelefonosFuncionarios($ci) {
        try {
            $db = Conexion::getInstance();
            $telefonos = array();
            $sentencia = "select * from telefonos where idTelefono in (select idTelefono from funcionariostelefonos where idFuncionario = '" . $ci . "')";
            $aux = $db->consulta($sentencia);
            foreach ($aux as $telefono) {
                $tel = new Telefono(null);
                $tel->id = $telefono[0];
                $tel->numero = $telefono[1];
                array_push($telefonos, $tel);
            }
            return $telefonos;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traerTelefonosLugares($idLugar) {
        try {
            $db = Conexion::getInstance();
            $telefonos = array();
            $sentencia = "select * from telefonos where idTelefono in (select idTelefono from lugarestelefonos where idLugar = '" . $idLugar . "')";
            $aux = $db->consulta($sentencia);
            if (count($aux)) {
                foreach ($aux as $telefono) {
                    $tel = new Telefono(null);
                    $tel->id = $telefono[0];
                    $tel->numero = $telefono[1];
                    array_push($telefonos, $tel);
                }
            }
            return $telefonos;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traerTelefonosClientes($idCliente) {
        try {
            $db = Conexion::getInstance();
            $telefonos = array();
            $sentencia = "select * from telefonos where idTelefono in (select idTelefono from clientestelefonos where idCliente = '" . $idCliente . "')";
            $aux = $db->consulta($sentencia);
            foreach ($aux as $telefono) {
                $tel = new Telefono(null);
                $tel->id = $telefono[0];
                $tel->numero = $telefono[1];
                array_push($telefonos, $tel);
            }
            return $telefonos;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function actualizarTelefono($datos) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "UPDATE telefonos SET numero='" . $datos[1] . "' WHERE idTelefono='" . $datos[0]."'";
            $db->consulta($sentencia);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function eliminarTelefonoCliente($idtel) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "delete from clientestelefonos WHERE idTelefono=" . $idtel;
            $sentencia2 = "delete from telefonos where idTelefono=" . $idtel;
            $consulta = $db->consulta($sentencia);
            $consulta = $db->consulta($sentencia2);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }
    public function eliminarTelefonoFuncionario($idtel) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "delete from funcionariostelefonos WHERE idTelefono=" . $idtel;
            $sentencia2 = "delete from telefonos where idTelefono=" . $idtel;
            $consulta = $db->consulta($sentencia);
            $consulta = $db->consulta($sentencia2);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function eliminarTelefonoLugar($idtel) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "delete from lugarestelefonos WHERE idTelefono=" . $idtel;
            $sentencia2 = "delete from telefonos where idTelefono=" . $idtel;
            $db->consulta($sentencia);
            $db->consulta($sentencia2);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

}

?>
